package cn.gok.homework;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import jdk.internal.util.xml.impl.Input;

import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Calendar;

/* 1 使用大数运算，就算
        4444444.4444/3.333333的值，保留2位小数，四舍五入
        2  输入你生日的前一周的周四是该年的第几天？
        Calendar:set方法设置到你的生日，
        add方法跳到前一周的周四，通过 xxxx获得是该年的第几天? get(Calendar.DAY_OF_YEAR)
        3、递归输出src目录中的所有.java文件的绝对路径。
        4、在电脑D盘下创建一个文件为HelloWorld.txt文件，判断他是文件还是目录，再创建一个目录IOTest，之后将HelloWorld.txt拷贝到IOTest目录的a.txt去。
        5、从utf-8编码格式的文本复制到GBK编码的文本（不能出现乱码）

*/
public class Homework {
    public static void main(String[] args) throws IOException {
        作业1();
        作业2();
        作业3();
        作业4();

    }

    private static void 作业4() throws IOException {
        File f =new File("E:\\HelloWorld.txt");
        if (!f.exists()){
            f.createNewFile();
        }
        System.out.println("是否是文件："+f.isFile());
        System.out.println("是否是目地："+f.isDirectory());
        //再创建一个目录IOTest
        File f2 =new File("E:\\IOTest");
        if (!f2.exists()){
            f2.mkdir();

        }
        //拷贝文件
        InputStream is2=new FileInputStream(f);
        OutputStream os2 =new FileOutputStream("E:\\IOTest\\a.txt",true);
        byte b2[]=new byte[100];
        int len=0;
        while ((len=is2.read(b2))!=-1){
            os2.write(b2,0,len);
        }
        os2.close();
        is2.close();
        System.out.println("拷贝结束！！！");

    }

    private static void listDirectory(File dir){
        for(File file:dir.listFiles()){
            if (file.isDirectory()){
                listDirectory(file);
            }else {
                if (file.getName().toUpperCase().indexOf(".JAVA")>0){
                    System.out.println(file.getName());
                }
            }
        }
    }

    private static void 作业3() {
        File f =new File("day4\\src");
        listDirectory(f);

    }

    //2  输入你生日的前一周的周四是该年的第几天？Calendar:set方法设置到你的生日，
//add方法跳到前一周的周四，通过 xxxx获得是该年的第几天? get(Calendar.DAY_OF_YEAR)
    private static void 作业2() {
        Calendar c =Calendar.getInstance();
        c.set(2000,0,1);
        c.add(Calendar.WEEK_OF_YEAR,-1);
        System.out.println(c);
        c.set(Calendar.DAY_OF_WEEK,5);
        System.out.println("是该年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");
    }

    //1 使用大数运算，就算
//4444444.4444/3.333333的值，保留2位小数，四舍五入
    private static void 作业1() {
        BigDecimal b1 =new BigDecimal("4444444.4444");
        BigDecimal b2 =new BigDecimal("3.333333");
        BigDecimal resilt =b1.divide(b2,2, RoundingMode.HALF_UP);
        System.out.println(resilt.toString());


    }

}
